Шаг 11. Создаём запрос на слияние

Запрос на слияние можно создать двумя способами:

  • перейти в раздел Pull requests,
  • нажать на зелёную ссылку Compare & pull request.

В GitLab запрос на слияние называется Merge requests. Разработчики давно просят GitHub тоже переименовать Pull requests в Merge requests, но пока изменений не предвидится.

Нажмём на ссылку Compare & pull request.

Красная стрелка указывает на зелёную ссылку Compare & pull request
Красная стрелка указывает на зелёную ссылку Compare & pull request

Откроется страница создания нового запроса на слияние.

Страница создания нового запроса на слияние
Страница создания нового запроса на слияние

На этой странице есть три основных блока. В первом блоке указано, что мы планируем ветку 09-repository-fork, находящуюся в копии, влить в ветку main, находящуюся в основном удалённом репозитории. Ниже зелёным текстом написано Able to merge. Это означает, что слияние пройдёт без конфликтов.

Красная обводка вокруг первого блока
Красная обводка вокруг первого блока

Во втором блоке можно ввести заголовок и описание запроса на слияние. Например, указав, какие конкретно изменения содержатся. Так человеку, который будет просматривать ваш запрос на слияние, будет проще понять, что в нём содержится.

Чуть ниже, напротив текста Allow edits by maintainers, установлен флажок. Если его убрать, то пользователи, у которых есть доступ к основному репозиторию git-academy (не считая создателя), не смогут добавлять коммиты в ветку 09-repository-fork.

Обычно флажок оставляют. Но даже если вы его уберёте, то в любой момент сможете снова установить.

Красная обводка вокруг второго блока
Красная обводка вокруг второго блока

Последний элемент — зелёная кнопка Create pull request. Она создаёт запрос на слияние.

Помимо создания запроса на слияние, вы также можете создать черновик — он позволяет посмотреть, как будет выглядеть запрос на слияние. Чтобы это сделать, нужно нажать на стрелку рядом с текстом Create pull request, а затем выбрать Create draft pull request. В черновике можно отметить, что запрос готов к просмотру.

Черновик редко выбирают. Мы про него рассказали в ознакомительных целях, чтобы вы знали, что такая опция есть.

Красная стрелка указывает на создание черновика запроса на слияние
Красная стрелка указывает на создание черновика запроса на слияние

Третий блок можно разбить ещё на три мини-блока:

  • В первом содержится краткая информация о количестве новых коммитов, которые будут добавлены на вливаемую ветку, общем количестве изменённых файлов и количестве человек, которые вносили изменения.
  • Во втором содержатся сами коммиты.
  • В третьем содержатся изменения

Красная обводка вокруг третьего блока
Красная обводка вокруг третьего блока

Вернёмся к практике: нам осталось написать заголовок запроса. По умолчанию GitHub берёт текст коммита, но это не всегда удобно. Поэтому важно написать грамотный заголовок, который коротко описывает изменения. Желательно писать заголовки на латинице. Исключение — если в рабочем репозитории принято использовать кириллицу, но тогда и коммиты тоже нужно писать на кириллице.

Не пишите заголовки в стиле «Первый запрос на слияние», «Добавил новую строчку» и так далее — в них мало конкретики. По ним сложно понять, что содержит изменение.

Исправим наш заголовок запроса на такой: Added the class attribute for the p element.

Красная стрелка указывает на изменённый заголовок запроса
Красная стрелка указывает на изменённый заголовок запроса

Далее нажмём на кнопку Create pull request.

Красная стрелка указывает на кнопку Create pull request
Красная стрелка указывает на кнопку Create pull request

Нас перебросит на страницу открытого запроса на слияние.

Страница открытого запроса на слияние
Страница открытого запроса на слияние

Когда запрос будет принят, статус Open заменится на Merged. Ещё бывает статус Closed — когда запрос на слияние отменён.

Важно помнить: когда открыт запрос на слияние, коммиты, которые будут отправлены на удалённую ветку 09-repository-fork, перенесутся в запрос на слияние. Если вы хотите что-то отправить на ветку, которая участвует в запросе, и при этом не хотите, чтобы изменения попали в запрос, то дождитесь сначала принятия или отмены запроса, а уже потом что-то отправляйте. Часто новички не понимают, почему они отправляют коммит на удалённую ветку, но при этом его и изменений не видно в репозитории. Дело в том, что коммит переносится в запрос на слияние.

Также на этой странице можно написать комментарий во вкладке Write. Порой под открытыми запросами на слияние может разгореться дискуссия на ту или иную тему.